/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package managers;

import catalogos.ExtraccionCatalogos;
import conexionBD.ConexionServidor;
import java.io.InputStream;
import java.io.Serializable;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.AjaxBehaviorEvent;
import javax.faces.model.SelectItem;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JasperRunManager;

/**
 *
 * @author olvarey
 */
@ManagedBean
@SessionScoped
public class managerCrearSolicitud implements Serializable {

    //Variables para datos solicitante
    private String primerNombreSolicitante;
    private String segundoNombreSolicitante;
    private String primerApellidoSolicitante;
    private String segundoApellidoSolicitante;
    private Integer duiSolicitante;
    private String telefonoResidenciaSolicitante;
    private String telefonoOficinaSolicitante;
    private String telefonoFaxCelularSolicitante;
    //Variables para valores seleccionados: departamento, municipio y persona que solicita -- Solicitante
    private int departamentoSolicitanteSeleccionado;
    private int municipioSolicitanteSeleccionado;
    private int solicitanteSeleccionado;
    //Variables para tipo de intervencion
    private int tipoIntervencionSeleccionada;
    //Variables para datos del inmueble
    private String nombreActualInmueble;
    private String direccionInmueble;
    //Variables para los valores seleccionados: departamento y municipio -- Inmueble
    private int departamentoInmuebleSeleccionado;
    private int municipioInmuebleSeleccionado;
    //Variables para los usos
    private int usoOriginal;
    private int usoActual;
    private int usoDestinado;
    private String matriculaCNR;
    private String nombreConstructorDisenador;
    private String fechaConstruccion;
    //Variables para el propietario
    private String primerNombrePropietario;
    private String segundoNombrePropietario;
    private String primerApellidoPropietario;
    private String segundoApellidoPropietario;
    private Integer duiPropietario;
    private String telefonoResidenciaPropietario;
    private String telefonoOficinaPropietario;
    private String telefonoFaxCelularPropietario;
    private String emailPropietario;
    private String direccionPropietario;
    //Variables para los valores seleccionados: departamento y municipio -- Propietario
    private int departamentoPropietarioSeleccionado;
    private int municipioPropietarioSeleccionado;
    //Variables para habilitar componentes
    private Boolean habilitarDeptoPropietario = true;
    private Boolean habilitarMuniPropietario = true;
    //Variables para profesional responsable
    private String primerNombreResponsable;
    private String segundoNombreResponsable;
    private String primerApellidoResponsable;
    private String segundoApellidoResponsable;
    private Integer duiResponsable;
    private String telefonoResidenciaResponsable;
    private String telefonoOficinaResponsable;
    private String telefonoFaxCelularResponsable;
    private String numeroRegistroResponsable;
    private String emailResponsable;
    private String direccionResponsable;
    //Variables para los valores seleccionados: departamento y municipio -- Profesional responsable
    private int departamentoResponsableSeleccionado;
    private int municipioResponsableSeleccionado;
    private int profesionResponsableSeleccionada;
    //Variables para datos Colindante
    private String colindanteNorte;
    private String colindanteSur;
    private String colindanteEste;
    private String colindanteOeste;
    private Integer numSoli;
    private ExtraccionCatalogos catalogo = new ExtraccionCatalogos();

    //private Boolean siGuardo=false;
    public Boolean getHabilitarDeptoPropietario() {
        return habilitarDeptoPropietario;
    }

    public void setHabilitarDeptoPropietario(Boolean habilitarDeptoPropietario) {
        this.habilitarDeptoPropietario = habilitarDeptoPropietario;
    }

    public Boolean getHabilitarMuniPropietario() {
        return habilitarMuniPropietario;
    }

    public void setHabilitarMuniPropietario(Boolean habilitarMuniPropietario) {
        this.habilitarMuniPropietario = habilitarMuniPropietario;
    }

    public String getColindanteEste() {
        return colindanteEste;
    }

    public void setColindanteEste(String colindanteEste) {
        this.colindanteEste = colindanteEste;
    }

    public String getColindanteNorte() {
        return colindanteNorte;
    }

    public void setColindanteNorte(String colindanteNorte) {
        this.colindanteNorte = colindanteNorte;
    }

    public String getColindanteOeste() {
        return colindanteOeste;
    }

    public void setColindanteOeste(String colindanteOeste) {
        this.colindanteOeste = colindanteOeste;
    }

    public String getColindanteSur() {
        return colindanteSur;
    }

    public void setColindanteSur(String colindanteSur) {
        this.colindanteSur = colindanteSur;
    }

    public int getDepartamentoInmuebleSeleccionado() {
        return departamentoInmuebleSeleccionado;
    }

    public void setDepartamentoInmuebleSeleccionado(int departamentoInmuebleSeleccionado) {
        this.departamentoInmuebleSeleccionado = departamentoInmuebleSeleccionado;
    }

    public int getDepartamentoPropietarioSeleccionado() {
        return departamentoPropietarioSeleccionado;
    }

    public void setDepartamentoPropietarioSeleccionado(int departamentoPropietarioSeleccionado) {
        this.departamentoPropietarioSeleccionado = departamentoPropietarioSeleccionado;
    }

    public int getDepartamentoResponsableSeleccionado() {
        return departamentoResponsableSeleccionado;
    }

    public void setDepartamentoResponsableSeleccionado(int departamentoResponsableSeleccionado) {
        this.departamentoResponsableSeleccionado = departamentoResponsableSeleccionado;
    }

    public int getDepartamentoSolicitanteSeleccionado() {
        return departamentoSolicitanteSeleccionado;
    }

    public void setDepartamentoSolicitanteSeleccionado(int departamentoSolicitanteSeleccionado) {
        this.departamentoSolicitanteSeleccionado = departamentoSolicitanteSeleccionado;
    }

    public String getDireccionInmueble() {
        return direccionInmueble;
    }

    public void setDireccionInmueble(String direccionInmueble) {
        this.direccionInmueble = direccionInmueble;
    }

    public String getDireccionPropietario() {
        return direccionPropietario;
    }

    public void setDireccionPropietario(String direccionPropietario) {
        this.direccionPropietario = direccionPropietario;
    }

    public String getDireccionResponsable() {
        return direccionResponsable;
    }

    public void setDireccionResponsable(String direccionResponsable) {
        this.direccionResponsable = direccionResponsable;
    }

    public Integer getDuiSolicitante() {
        return duiSolicitante;
    }

    public void setDuiSolicitante(Integer duiSolicitante) {
        this.duiSolicitante = duiSolicitante;
    }

    public Integer getDuiPropietario() {
        return duiPropietario;
    }

    public void setDuiPropietario(Integer duiPropietario) {
        this.duiPropietario = duiPropietario;
    }

    public Integer getDuiResponsable() {
        return duiResponsable;
    }

    public void setDuiResponsable(Integer duiResponsable) {
        this.duiResponsable = duiResponsable;
    }

    public String getEmailPropietario() {
        return emailPropietario;
    }

    public void setEmailPropietario(String emailPropietario) {
        this.emailPropietario = emailPropietario;
    }

    public String getEmailResponsable() {
        return emailResponsable;
    }

    public void setEmailResponsable(String emailResponsable) {
        this.emailResponsable = emailResponsable;
    }

    public String getMatriculaCNR() {
        return matriculaCNR;
    }

    public void setMatriculaCNR(String matriculaCNR) {
        this.matriculaCNR = matriculaCNR;
    }

    public String getFechaConstruccion() {
        return fechaConstruccion;
    }

    public void setFechaConstruccion(String fechaConstruccion) {
        this.fechaConstruccion = fechaConstruccion;
    }

    public String getNombreConstructorDisenador() {
        return nombreConstructorDisenador;
    }

    public void setNombreConstructorDisenador(String nombreConstructorDisenador) {
        this.nombreConstructorDisenador = nombreConstructorDisenador;
    }

    public int getMunicipioInmuebleSeleccionado() {
        return municipioInmuebleSeleccionado;
    }

    public void setMunicipioInmuebleSeleccionado(int municipioInmuebleSeleccionado) {
        this.municipioInmuebleSeleccionado = municipioInmuebleSeleccionado;
    }

    public int getMunicipioPropietarioSeleccionado() {
        return municipioPropietarioSeleccionado;
    }

    public void setMunicipioPropietarioSeleccionado(int municipioPropietarioSeleccionado) {
        this.municipioPropietarioSeleccionado = municipioPropietarioSeleccionado;
    }

    public int getMunicipioResponsableSeleccionado() {
        return municipioResponsableSeleccionado;
    }

    public void setMunicipioResponsableSeleccionado(int municipioResponsableSeleccionado) {
        this.municipioResponsableSeleccionado = municipioResponsableSeleccionado;
    }

    public int getMunicipioSolicitanteSeleccionado() {
        return municipioSolicitanteSeleccionado;
    }

    public void setMunicipioSolicitanteSeleccionado(int municipioSolicitanteSeleccionado) {
        this.municipioSolicitanteSeleccionado = municipioSolicitanteSeleccionado;
    }

    public String getNombreActualInmueble() {
        return nombreActualInmueble;
    }

    public void setNombreActualInmueble(String nombreActualInmueble) {
        this.nombreActualInmueble = nombreActualInmueble;
    }

    public String getNumeroRegistroResponsable() {
        return numeroRegistroResponsable;
    }

    public void setNumeroRegistroResponsable(String numeroRegistroResponsable) {
        this.numeroRegistroResponsable = numeroRegistroResponsable;
    }

    public String getPrimerApellidoPropietario() {
        return primerApellidoPropietario;
    }

    public void setPrimerApellidoPropietario(String primerApellidoPropietario) {
        this.primerApellidoPropietario = primerApellidoPropietario;
    }

    public String getPrimerApellidoResponsable() {
        return primerApellidoResponsable;
    }

    public void setPrimerApellidoResponsable(String primerApellidoResponsable) {
        this.primerApellidoResponsable = primerApellidoResponsable;
    }

    public String getPrimerApellidoSolicitante() {
        return primerApellidoSolicitante;
    }

    public void setPrimerApellidoSolicitante(String primerApellidoSolicitante) {
        this.primerApellidoSolicitante = primerApellidoSolicitante;
    }

    public String getPrimerNombrePropietario() {
        return primerNombrePropietario;
    }

    public void setPrimerNombrePropietario(String primerNombrePropietario) {
        this.primerNombrePropietario = primerNombrePropietario;
    }

    public String getPrimerNombreResponsable() {
        return primerNombreResponsable;
    }

    public void setPrimerNombreResponsable(String primerNombreResponsable) {
        this.primerNombreResponsable = primerNombreResponsable;
    }

    public String getPrimerNombreSolicitante() {
        return primerNombreSolicitante;
    }

    public void setPrimerNombreSolicitante(String primerNombreSolicitante) {
        this.primerNombreSolicitante = primerNombreSolicitante;
    }

    public int getProfesionResponsableSeleccionada() {
        return profesionResponsableSeleccionada;
    }

    public void setProfesionResponsableSeleccionada(int profesionResponsableSeleccionada) {
        this.profesionResponsableSeleccionada = profesionResponsableSeleccionada;
    }

    public String getSegundoNombrePropietario() {
        return segundoNombrePropietario;
    }

    public void setSegundoNombrePropietario(String segundoNombrePropietario) {
        this.segundoNombrePropietario = segundoNombrePropietario;
    }

    public String getSegundoApellidoPropietario() {
        return segundoApellidoPropietario;
    }

    public void setSegundoApellidoPropietario(String segundoApellidoPropietario) {
        this.segundoApellidoPropietario = segundoApellidoPropietario;
    }

    public String getSegundoApellidoResponsable() {
        return segundoApellidoResponsable;
    }

    public void setSegundoApellidoResponsable(String segundoApellidoResponsable) {
        this.segundoApellidoResponsable = segundoApellidoResponsable;
    }

    public String getSegundoApellidoSolicitante() {
        return segundoApellidoSolicitante;
    }

    public void setSegundoApellidoSolicitante(String segundoApellidoSolicitante) {
        this.segundoApellidoSolicitante = segundoApellidoSolicitante;
    }

    public String getSegundoNombreResponsable() {
        return segundoNombreResponsable;
    }

    public void setSegundoNombreResponsable(String segundoNombreResponsable) {
        this.segundoNombreResponsable = segundoNombreResponsable;
    }

    public String getSegundoNombreSolicitante() {
        return segundoNombreSolicitante;
    }

    public void setSegundoNombreSolicitante(String segundoNombreSolicitante) {
        this.segundoNombreSolicitante = segundoNombreSolicitante;
    }

    public int getSolicitanteSeleccionado() {
        return solicitanteSeleccionado;
    }

    public void setSolicitanteSeleccionado(int solicitanteSeleccionado) {
        this.solicitanteSeleccionado = solicitanteSeleccionado;
    }

    public String getTelefonoFaxCelularPropietario() {
        return telefonoFaxCelularPropietario;
    }

    public void setTelefonoFaxCelularPropietario(String telefonoFaxCelularPropietario) {
        this.telefonoFaxCelularPropietario = telefonoFaxCelularPropietario;
    }

    public String getTelefonoFaxCelularResponsable() {
        return telefonoFaxCelularResponsable;
    }

    public void setTelefonoFaxCelularResponsable(String telefonoFaxCelularResponsable) {
        this.telefonoFaxCelularResponsable = telefonoFaxCelularResponsable;
    }

    public String getTelefonoFaxCelularSolicitante() {
        return telefonoFaxCelularSolicitante;
    }

    public void setTelefonoFaxCelularSolicitante(String telefonoFaxCelularSolicitante) {
        this.telefonoFaxCelularSolicitante = telefonoFaxCelularSolicitante;
    }

    public String getTelefonoOficinaPropietario() {
        return telefonoOficinaPropietario;
    }

    public void setTelefonoOficinaPropietario(String telefonoOficinaPropietario) {
        this.telefonoOficinaPropietario = telefonoOficinaPropietario;
    }

    public String getTelefonoOficinaResponsable() {
        return telefonoOficinaResponsable;
    }

    public void setTelefonoOficinaResponsable(String telefonoOficinaResponsable) {
        this.telefonoOficinaResponsable = telefonoOficinaResponsable;
    }

    public String getTelefonoOficinaSolicitante() {
        return telefonoOficinaSolicitante;
    }

    public void setTelefonoOficinaSolicitante(String telefonoOficinaSolicitante) {
        this.telefonoOficinaSolicitante = telefonoOficinaSolicitante;
    }

    public String getTelefonoResidenciaPropietario() {
        return telefonoResidenciaPropietario;
    }

    public void setTelefonoResidenciaPropietario(String telefonoResidenciaPropietario) {
        this.telefonoResidenciaPropietario = telefonoResidenciaPropietario;
    }

    public String getTelefonoResidenciaResponsable() {
        return telefonoResidenciaResponsable;
    }

    public void setTelefonoResidenciaResponsable(String telefonoResidenciaResponsable) {
        this.telefonoResidenciaResponsable = telefonoResidenciaResponsable;
    }

    public String getTelefonoResidenciaSolicitante() {
        return telefonoResidenciaSolicitante;
    }

    public void setTelefonoResidenciaSolicitante(String telefonoResidenciaSolicitante) {
        this.telefonoResidenciaSolicitante = telefonoResidenciaSolicitante;
    }

    public int getTipoIntervencionSeleccionada() {
        return tipoIntervencionSeleccionada;
    }

    public void setTipoIntervencionSeleccionada(int tipoIntervencionSeleccionada) {
        this.tipoIntervencionSeleccionada = tipoIntervencionSeleccionada;
    }

    public int getUsoActual() {
        return usoActual;
    }

    public void setUsoActual(int usoActual) {
        this.usoActual = usoActual;
    }

    public int getUsoDestinado() {
        return usoDestinado;
    }

    public void setUsoDestinado(int usoDestinado) {
        this.usoDestinado = usoDestinado;
    }

    public int getUsoOriginal() {
        return usoOriginal;
    }

    public void setUsoOriginal(int usoOriginal) {
        this.usoOriginal = usoOriginal;
    }

    public Integer getNumSoli() {
        return numSoli;
    }

    public void setNumSoli(Integer numSoli) {
        this.numSoli = numSoli;
    }

    /** Creates a new instance of managerCrearSolicitud */
    public managerCrearSolicitud() {
        limpiar();
    }

    public String guardarInformacion() {
        String destino = null;
        ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            //Sentencia sql que hace el llamado a el procedimiento
            String sql = "{? = call insersionsolicitud(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}";
            CallableStatement cs = con.prepareCall(sql);
            //Setting the parameters to be catched by the stored procedure
            cs.registerOutParameter(1, java.sql.Types.INTEGER);
            cs.setInt(2, departamentoInmuebleSeleccionado);
            cs.setInt(3, municipioInmuebleSeleccionado);
            cs.setString(4, direccionInmueble);
            cs.setString(5, matriculaCNR);
            cs.setString(6, nombreConstructorDisenador);
            cs.setString(7, fechaConstruccion);
            cs.setString(8, colindanteNorte);
            cs.setString(9, colindanteSur);
            cs.setString(10, colindanteEste);
            cs.setString(11, colindanteOeste);
            cs.setInt(12, departamentoPropietarioSeleccionado);
            cs.setInt(13, municipioPropietarioSeleccionado);
            cs.setString(14, primerNombrePropietario);
            cs.setString(15, segundoNombrePropietario);
            cs.setString(16, primerApellidoPropietario);
            cs.setString(17, segundoApellidoPropietario);
            cs.setString(18, direccionPropietario);
            cs.setString(19, telefonoResidenciaPropietario);
            cs.setString(20, telefonoOficinaPropietario);
            cs.setString(21, telefonoFaxCelularPropietario);
            cs.setInt(22, duiPropietario);
            cs.setString(23, emailPropietario);
            cs.setInt(24, departamentoResponsableSeleccionado);
            cs.setInt(25, municipioResponsableSeleccionado);
            cs.setString(26, primerNombreResponsable);
            cs.setString(27, segundoNombreResponsable);
            cs.setString(28, primerApellidoResponsable);
            cs.setString(29, segundoApellidoResponsable);
            cs.setString(30, direccionResponsable);
            cs.setString(31, telefonoResidenciaResponsable);
            cs.setString(32, telefonoOficinaResponsable);
            cs.setString(33, telefonoFaxCelularResponsable);
            cs.setInt(34, duiResponsable);
            cs.setString(35, emailResponsable);
            cs.setString(36, numeroRegistroResponsable);
            cs.setInt(37, departamentoSolicitanteSeleccionado);
            cs.setInt(38, municipioSolicitanteSeleccionado);
            cs.setString(39, primerNombreSolicitante);
            cs.setString(40, segundoNombreSolicitante);
            cs.setString(41, primerApellidoSolicitante);
            cs.setString(42, segundoApellidoSolicitante);
            cs.setInt(43, duiSolicitante);
            cs.setString(44, telefonoResidenciaSolicitante);
            cs.setString(45, telefonoFaxCelularSolicitante);
            cs.setString(46, telefonoOficinaSolicitante);
            cs.setInt(47, usoOriginal);
            cs.setInt(48, usoDestinado);
            cs.setInt(49, usoActual);
            cs.setString(50, ""); //agragar el campo de observacionesn para el uso actual
            cs.setInt(51, tipoIntervencionSeleccionada);
            //cs.setString(52, "obra menor");
            cs.setInt(52, profesionResponsableSeleccionada);
            //ejecucion del proceso almacenado
            cs.execute();
            managerModificarSolicitud.numeroSolicitud = cs.getInt(1);
            numSoli = managerModificarSolicitud.numeroSolicitud;
            //cierre de CallableStatement y Connection
            cs.close();
            con.close();
            limpiar();

            //Agregar mensaje de ingreso con exito
            addMessage(new FacesMessage(FacesMessage.SEVERITY_INFO, "Solicitud ingresada exitosamente", "Solicitud numero: " + "<b>" + managerModificarSolicitud.numeroSolicitud + "</b>"));
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        return destino;
    }

    public String guardarInfo() {
        String destino = "regresar";
        String guardarInformacion = guardarInformacion();
        limpiar();
        return destino;
    }

    public void addMessage(FacesMessage message) {
        FacesContext.getCurrentInstance().addMessage(null, message);
    }

    public List<SelectItem> getListaDeptos() {
        List<SelectItem> departamentos = new ArrayList<SelectItem>();
        departamentos.add(new SelectItem("null", "-seleccione uno-"));
        departamentos = catalogo.getListaDeptos();
        return departamentos;
    }

    public List<SelectItem> getListaMunicipiosFiltradosSolicitante() {
        List<SelectItem> municipios = new ArrayList<SelectItem>();
        municipios.add(new SelectItem("null", "-seleccione uno-"));
        municipios = catalogo.getListaMunicipiosFiltrados(departamentoSolicitanteSeleccionado);
        return municipios;
    }

    public List<SelectItem> getListaMunicipiosFiltradosInmueble() {

        List<SelectItem> municipios = new ArrayList<SelectItem>();
        municipios.add(new SelectItem("0", "-seleccione uno-"));
        municipios = catalogo.getListaMunicipiosFiltrados(departamentoInmuebleSeleccionado);
        return municipios;
    }

    public List<SelectItem> getListaMunicipiosFiltradosPropietario() {
        List<SelectItem> municipios = new ArrayList<SelectItem>();
        municipios.add(new SelectItem("0", "-seleccione uno-"));
        municipios = catalogo.getListaMunicipiosFiltrados(departamentoPropietarioSeleccionado);
        return municipios;
    }

    public List<SelectItem> getListaMunicipiosFiltradosResponsable() {
        List<SelectItem> municipios = new ArrayList<SelectItem>();
        municipios.add(new SelectItem("0", "-seleccione uno-"));
        municipios = catalogo.getListaMunicipiosFiltrados(departamentoResponsableSeleccionado);
        return municipios;
    }

    public List<SelectItem> getListaTiposIntervencion() {
        List<SelectItem> tiposIntervencion = new ArrayList<SelectItem>();
        tiposIntervencion.add(new SelectItem("0", "-seleccione uno-"));
        tiposIntervencion = catalogo.getListaTiposIntervencion();
        return tiposIntervencion;
    }

    public List<SelectItem> getListaUsoSuelo() {
        List<SelectItem> listaUsoSuelo = new ArrayList<SelectItem>();
        listaUsoSuelo.add(new SelectItem("0", "-seleccione uno-"));
        listaUsoSuelo = catalogo.getListaUsoSuelo();
        return listaUsoSuelo;
    }

    public List<SelectItem> getListaProfesiones() {
        List<SelectItem> listaProfesiones = new ArrayList<SelectItem>();
        listaProfesiones.add(new SelectItem("0", "-seleccione uno-"));
        listaProfesiones = catalogo.getListaProfesiones();
        return listaProfesiones;
    }

    public String redirectingPage() {
        return "/inicio/paginaPrincipal?faces-redirect=true";
    }
    //Metodo para duplicar la informacion

    public void duplicacionSolicitante(AjaxBehaviorEvent evento) {
        if (solicitanteSeleccionado == 1) {
            //Limpiar informacion de responsable
            primerNombreResponsable = "";
            segundoNombreResponsable = "";
            primerApellidoResponsable = "";
            segundoApellidoResponsable = "";
            duiResponsable = 0;
            telefonoResidenciaResponsable = "";
            telefonoOficinaResponsable = "";
            telefonoFaxCelularResponsable = "";
            departamentoResponsableSeleccionado = 0;
            municipioResponsableSeleccionado = 0;
            //Asignar valores a propietario
            primerNombrePropietario = primerNombreSolicitante;
            segundoNombrePropietario = segundoNombreSolicitante;
            primerApellidoPropietario = primerApellidoSolicitante;
            segundoApellidoPropietario = segundoApellidoSolicitante;
            duiPropietario = duiSolicitante;
            telefonoResidenciaPropietario = telefonoResidenciaSolicitante;
            telefonoOficinaPropietario = telefonoOficinaSolicitante;
            telefonoFaxCelularPropietario = telefonoFaxCelularSolicitante;
            departamentoPropietarioSeleccionado = departamentoSolicitanteSeleccionado;
            municipioPropietarioSeleccionado = municipioSolicitanteSeleccionado;
        }
        if (solicitanteSeleccionado == 2) {
            //Limpiar informacion de propietario
            primerNombrePropietario = "";
            segundoNombrePropietario = "";
            primerApellidoPropietario = "";
            segundoApellidoPropietario = "";
            duiPropietario = 0;
            telefonoResidenciaPropietario = "";
            telefonoOficinaPropietario = "";
            telefonoFaxCelularPropietario = "";
            departamentoPropietarioSeleccionado = 0;
            municipioResponsableSeleccionado = 0;
            //Asignar valores a responsable
            primerNombreResponsable = primerNombreSolicitante;
            segundoNombreResponsable = segundoNombreSolicitante;
            primerApellidoResponsable = primerApellidoSolicitante;
            segundoApellidoResponsable = segundoApellidoSolicitante;
            duiResponsable = duiSolicitante;
            telefonoResidenciaResponsable = telefonoResidenciaSolicitante;
            telefonoOficinaResponsable = telefonoOficinaSolicitante;
            telefonoFaxCelularResponsable = telefonoFaxCelularSolicitante;
            departamentoResponsableSeleccionado = departamentoSolicitanteSeleccionado;
            municipioResponsableSeleccionado = municipioSolicitanteSeleccionado;
        }
        if (solicitanteSeleccionado == 3) {
            primerNombreResponsable = "";
            segundoNombreResponsable = "";
            primerApellidoResponsable = "";
            segundoApellidoResponsable = "";
            duiResponsable = 0;
            telefonoResidenciaResponsable = "";
            telefonoOficinaResponsable = "";
            telefonoFaxCelularResponsable = "";
            departamentoResponsableSeleccionado = 0;
            municipioResponsableSeleccionado = 0;
            primerNombrePropietario = "";
            segundoNombrePropietario = "";
            primerApellidoPropietario = "";
            segundoApellidoPropietario = "";
            duiPropietario = 0;
            telefonoResidenciaPropietario = "";
            telefonoOficinaPropietario = "";
            telefonoFaxCelularPropietario = "";
            departamentoPropietarioSeleccionado = 0;
            municipioResponsableSeleccionado = 0;
        }
    }

    public void limpiar() {
        //Limpiar datos solicitante
        primerNombreSolicitante = "";
        segundoNombreSolicitante = "";
        primerApellidoSolicitante = "";
        segundoApellidoSolicitante = "";
        duiSolicitante = 0;
        telefonoResidenciaSolicitante = "";
        telefonoOficinaSolicitante = "";
        telefonoFaxCelularSolicitante = "";
        departamentoSolicitanteSeleccionado = 0;
        municipioSolicitanteSeleccionado = 0;
        solicitanteSeleccionado = 0;
        tipoIntervencionSeleccionada = 0;
        //Limpiar datos inmueble
        direccionInmueble = "";
        departamentoInmuebleSeleccionado = 0;
        municipioInmuebleSeleccionado = 0;
        usoOriginal = 0;
        usoActual = 0;
        usoDestinado = 0;
        matriculaCNR = "";
        colindanteNorte = "";
        colindanteSur = "";
        colindanteEste = "";
        colindanteOeste = "";
        nombreConstructorDisenador = "";
        fechaConstruccion = "";
        //Limpiar datos responsable
        primerNombreResponsable = "";
        segundoNombreResponsable = "";
        primerApellidoResponsable = "";
        segundoApellidoResponsable = "";
        duiResponsable = 0;
        telefonoResidenciaResponsable = "";
        telefonoOficinaResponsable = "";
        telefonoFaxCelularResponsable = "";
        departamentoResponsableSeleccionado = 0;
        municipioResponsableSeleccionado = 0;
        profesionResponsableSeleccionada = 0;
        numeroRegistroResponsable = "";
        emailResponsable = "";
        direccionResponsable = "";
        //Limpiar datos propietario
        primerNombrePropietario = "";
        segundoNombrePropietario = "";
        primerApellidoPropietario = "";
        segundoApellidoPropietario = "";
        duiPropietario = 0;
        telefonoResidenciaPropietario = "";
        telefonoOficinaPropietario = "";
        telefonoFaxCelularPropietario = "";
        departamentoPropietarioSeleccionado = 0;
        municipioPropietarioSeleccionado = 0;
        emailPropietario = "";
        direccionPropietario = "";
    }

    public void generarSolicitud(ActionEvent actionEvent) throws Exception {
        System.out.println("Entra al metodo");
        ConexionServidor myConexion = new ConexionServidor();
        FacesContext context = FacesContext.getCurrentInstance();
        HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
        InputStream reportStream = context.getExternalContext().getResourceAsStream("/jasperReports/pruebaSolicitud.jasper");
        System.out.println(context.getExternalContext().getResourceAsStream("/jasperReports/pruebaSolicitud.jasper"));
        ServletOutputStream servletOutputStream = response.getOutputStream();
        Connection con = myConexion.getConnection();
        Map parametro = new HashMap();
        parametro.put("numSolicitud", 18);
        JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, parametro, con);
        con.close();
        response.setContentType("application/pdf");
        servletOutputStream.flush();
        servletOutputStream.close();
    }
}
